import utilClass.ListNode;

import java.util.ArrayList;
import java.util.List;

/**
 * 876. 链表的中间结点
 * 19. 删除链表的倒数第 N 个结点
 */
public class LinkMid {

    public static ListNode middleNode(ListNode root){
        List<ListNode> tempArray=new ArrayList<>();
        while (root !=null){
            tempArray.add(root);
            root=root.next;
        }
        int mid=tempArray.size()/2;
        return tempArray.get(mid);
    }


    public static ListNode removeNthFromEnd(ListNode root,int n){
        ListNode zeroNode=new ListNode(0);
        zeroNode.next=root;
        ListNode fast=zeroNode;
        ListNode show=zeroNode;
        for(int i=0;i<n;i++){
            fast=fast.next;
        }

        while (fast.next!=null){
            fast=fast.next;
            show=show.next;
        }
         ListNode del=show.next;
        show.next=del.next;
        del.next=null;
        return zeroNode.next;
    }

    public static void main(String[] args) {
        int i = 1;
        ListNode listNode = new ListNode();
        ListNode root=new ListNode(i);
        listNode.next=root;
        while (i <= 5) {
            i++;
            if (root.next == null) {
                root.next = new ListNode(i);
            }
            root = root.next;
        }
        ListNode node=removeNthFromEnd(listNode.next,2);
    }
}
